home *** CD-ROM | disk | FTP | other *** search
Modula Definition | 1995-01-14 | 30.4 KB | 494 lines |
- (* REVISION HEADER ×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××× *
- |
- | $VER: TritonD.def 1.00 (06.09.94) by Stefan Schulz
- |
- | Module : TritonD
- | Last Modified : Tuesday, 06.09.94
- | Author : Stefan Schulz
- | Actual Revision : 1.00
- |
- |
- | Description
- | -----------
- | - Interface to Triton.library
- | Triton is copyright © 1993, 1994 by Stefan Zeiger
- |
- | Requirements
- | ------------
- | - triton.library V1.1
- |
- | Language
- | --------
- | - M2Amiga Modula 2 Software Development System
- | © Copyright by A+L AG, CH-2540 Grenchen
- |
- | Revision 1.00 \05.09.94\\06.09.94\
- | - initial revision
- |
- * ×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××× *)
-
- DEFINITION MODULE TritonD; (*$ Implementation:= FALSE *)
-
- (* IMPORTS ********************************************************************** *)
-
- IMPORT ed : ExecD,
- gtd : GadToolsD,
- gd : GraphicsD,
- ie : InputEvent,
- ind : IntuitionD,
- S : SYSTEM,
- ud : UtilityD,
- wd : WorkbenchD;
-
- (* ****************************************************************************** *)
-
- (* ------------------------------------------------------------------------------ *)
- (* library name and version *)
- (* ------------------------------------------------------------------------------ *)
-
- CONST tritonName = "triton.library";
- tritonVersion = 1;
-
- (* ------------------------------------------------------------------------------ *)
- (* Pointers to everything *)
- (* ------------------------------------------------------------------------------ *)
-
- TYPE TrAppPtr = POINTER TO TrApp;
- TrDimensionsPtr = POINTER TO TrDimensions;
- TrMessagePtr = POINTER TO TrMessage;
- TrProjectPtr = POINTER TO TrProject;
-
- TYPE (* for readability *)
- StrPtr = S.ADDRESS;
- BOOL = INTEGER; (* has to be SIZE(WORD), so no BOOLEANs *)
-
- (* ------------------------------------------------------------------------------ *)
- (* Triton Message *)
- (* ------------------------------------------------------------------------------ *)
-
- TYPE TrMessage = RECORD
- project : TrProjectPtr; (* The project which triggered *)
- (* the message *)
- id : LONGCARD; (* The object's ID *)
- class : LONGCARD; (* The Triton message class *)
- data : LONGCARD; (* The class-specific data *)
- code : LONGCARD; (* Currently only used by *)
- (* trmsKEYPRESSED *)
- pad0 : CARDINAL; (* qualifier is only 16 Bit *)
- qualifier : ie.QualifierSet;(* Qualifiers *)
- seconds : LONGCARD; (* \ Copy of system clock time *)
- micros : LONGCARD; (* / (Only where available! If *)
- (* not set, seconds is NULL) *)
- app : TrAppPtr; (* The project's application *)
- END; (* TrMessage *)
-
- CONST (* Message Classes *)
- trmsCLOSEWINDOW = 1; (* The window should be closed *)
- trmsERROR = 2; (* An error occured. Error code in 'data' *)
- trmsNEWVALUE = 3; (* Object's value has changed. New value in 'data' *)
- trmsACTION = 4; (* Object has triggered an action *)
- trmsICONDROPPED = 5; (* Icon dropped over window ('id'=0) or DropBox. *)
- (* AppMessagePtr in 'data' *)
- trmsKEYPRESSED = 6; (* Key pressed. 'data' contains ASCII code, 'code' *)
- (* raw code and 'qualifier' contains qualifiers *)
- trmsHELP = 7; (* The user requested help for the specified ID *)
-
- (* ------------------------------------------------------------------------------ *)
- (* Triton Error Codes *)
- (* ------------------------------------------------------------------------------ *)
-
- CONST trerOK = 0; (* No error *)
-
- trerALLOCMEM = 1; (* Not enough memory *)
- trerOPENWINDOW = 2; (* Can't open window *)
- trerWINDOWTOOBIG = 3; (* Window would be too big for screen *)
- trerDRAWINFO = 4; (* Can't get screen's DrawInfo *)
- trerOPENFONT = 5; (* Can't open font *)
- trerCREATEMSGPORT = 6; (* Can't create message port *)
- trerINSTALLOBJECT = 7; (* Can't create an object *)
- trerCREATECLASS = 8; (* Can't create a class *)
- trerNOLOCKPUBSCREEN = 9; (* Can't lock public screen *)
- trerCREATEMENUS = 12; (* Error while creating the menus *)
- trerGTCREATECONTEXT = 14; (* Can't create gadget context *)
-
- trerMAXERRORNUM = 15; (* PRIVATE! *)
-
- (* ------------------------------------------------------------------------------ *)
- (* Tags for OpenProject *)
- (* ------------------------------------------------------------------------------ *)
-
- CONST (* Window/Project *)
- trwiTitle = ud.tagUser+1; (* STRPTR: The window title *)
- trwiFlags = ud.tagUser+2; (* See below for window flags *)
- trwiUnderscore = ud.tagUser+3; (* CharPtr: The underscore for *)
- (* menu and gadget shortcuts *)
- trwiPosition = ud.tagUser+4; (* Window position, see below *)
- trwiCustomScreen = ud.tagUser+5; (* ScreenPtr *)
- trwiPubScreen = ud.tagUser+6; (* ScreenPtr, must have been *)
- (* locked! *)
- trwiPubScreenName = ud.tagUser+7; (* StrPtr, Triton is doing the *)
- (* locking *)
- trwiPropFontAttr = ud.tagUser+8; (* TextAttrPtr: proportional font *)
- trwiFixedWidthFontAttr = ud.tagUser+9; (* TextAttrPtr: fixed-width font *)
- trwiBackfill = ud.tagUser+10; (* The backfill type, see below *)
- trwiID = ud.tagUser+11; (* LONGCARD: The window ID *)
- trwiDimensions = ud.tagUser+12; (* TrDimensionsPtr *)
- trwiScreenTitle = ud.tagUser+13; (* StrPtr: The screen title *)
-
- CONST (* Menus *)
- trmnTitle = ud.tagUser+101; (* StrPtr: Menu *)
- trmnItem = ud.tagUser+102; (* StrPtr: Menu item *)
- trmnSub = ud.tagUser+103; (* StrPtr: Menu subitem *)
- trmnFlags = ud.tagUser+104; (* See below for flags *)
-
- CONST (* General object attributes *)
- tratID = ud.tagUser+150; (* The object's/menu's ID *)
- tratFlags = ud.tagUser+151; (* The object's flags *)
- tratValue = ud.tagUser+152; (* The object's value *)
- tratText = ud.tagUser+153; (* The object's text *)
- tratDisabled = ud.tagUser+154; (* Disabled object? *)
- tratBackfill = ud.tagUser+155; (* Backfill pattern *)
- tratMinWidth = ud.tagUser+156; (* Minimum width *)
- tratMinHeight = ud.tagUser+157; (* Minimum height *)
-
- trobUSER = ud.tagUser+800; (* PRIVATE! *)
-
- (* ------------------------------------------------------------------------------ *)
- (* Window Flags *)
- (* ------------------------------------------------------------------------------ *)
-
- CONST trwfBACKDROP = 00000001H; (* Create a backdrop borderless *)
- (* window *)
- trwfNODRAGBAR = 00000002H; (* Don't use a dragbar *)
- trwfNODEPTHGADGET = 00000004H; (* Don't use a depth-gadget *)
- trwfNOCLOSEGADGET = 00000008H; (* Don't use a close-gadget *)
- trwfNOACTIVATE = 00000010H; (* Don't activate window *)
- trwfNOESCCLOSE = 00000020H; (* Don't send trmsCLOSEWINDOW when *)
- (* Esc is pressed *)
- trwfNOPSCRFALLBACK = 00000040H; (* Don't fall back onto default *)
- (* PubScreen *)
- trwfNOZIPGADGET = 00000080H; (* Don't use a zip-gadget *)
- trwfZIPCENTERTOP = 00000100H; (* Center the zipped window on the *)
- (* title bar *)
- trwfNOMINTEXTWIDTH = 00000200H; (* Minimum window width not according*)
- (* to title text *)
- trwfNOSIZEGADGET = 00000400H; (* Don't use a sizing-gadget *)
- trwfNOFONTFALLBACK = 00000800H; (* Don't fall back to topaz.8 *)
- trwfNODELZIP = 00001000H; (* Don't zip the window when Del is *)
- (* pressed *)
- trwfSIMPLEREFRESH = 00002000H; (* Use simple refresh instead of *)
- (* smart refresh *)
- trwfZIPTOCURRENTPOS = 00004000H; (* Will zip the window at the current*)
- (* position (OS3.0+) *)
- trwfAPPWINDOW = 00008000H; (* Create an AppWindow without using *)
- (* class_dropbox *)
- trwfACTIVATESTRGAD = 00010000H; (* Activate the first string gadget *)
- (* after opening the window *)
- trwfHELP = 00020000H; (* Pressing <Help> will create a *)
- (* trmsHELP message *)
-
- (* ------------------------------------------------------------------------------ *)
- (* Menu Flags *)
- (* ------------------------------------------------------------------------------ *)
-
- CONST trmfCHECKIT = 00000001H; (* Leave space for a checkmark *)
- trmfCHECKED = 00000002H; (* Check the item (includes *)
- (* trmfCHECKIT) *)
- trmfDISABLED = 00000004H; (* Ghost the menu/item *)
-
-
- (* ------------------------------------------------------------------------------ *)
- (* Window positions *)
- (* ------------------------------------------------------------------------------ *)
-
- CONST trwpDEFAULT = 0; (* Get Triton choose a good position *)
- trwpBELOWTITLEBAR = 1; (* Left side of screen, below title bar *)
- trwpCENTERTOP = 1025; (* Top of screen, centered on the title bar *)
- trwpTOPLEFTSCREEN = 1026; (* Top left corner of screen *)
- trwpCENTERSCREEN = 1027; (* Centered on the screen *)
- trwpCENTERDISPLAY = 1028; (* Centered on the currently displayed clip *)
- trwpMOUSEPOINTER = 1029; (* Under the mouse pointer *)
-
- (* ------------------------------------------------------------------------------ *)
- (* Backfill types *)
- (* ------------------------------------------------------------------------------ *)
-
- trbfWINDOWBACK = 0; (* Window backfill colors *)
- trbfREQUESTERBACK = 1; (* Requester backfill colors *)
- trbfNONE = 2; (* No backfill (= Fill with BACKGROUNDPEN) *)
- trbfSHINE = 3; (* Fill with SHINEPEN *)
- trbfSHINESHADOW = 4; (* Fill with SHINEPEN + SHADOWPEN *)
- trbfSHINEFILL = 5; (* Fill with SHINEPEN + FILLPEN *)
- trbfSHINEBACKGROUND = 6; (* Fill with SHINEPEN + BACKGROUNDPEN *)
- trbfSHADOW = 7; (* Fill with SHADOWPEN *)
- trbfSHADOWFILL = 8; (* Fill with SHADOWPEN + FILLPEN *)
- trbfSHADOWBACKGROUND = 9; (* Fill with SHADOWPEN + BACKGROUNDPEN *)
- trbfFILL = 10; (* Fill with FILLPEN *)
- trbfFILLBACKGROUND = 11; (* Fill with FILLPEN + BACKGROUNDPEN *)
-
- (* ------------------------------------------------------------------------------ *)
- (* Display Object Flags *)
- (* ------------------------------------------------------------------------------ *)
-
- CONST (* General flags *)
- trofRAISED = 00000001H; (* Raised object *)
- trofHORIZ = 00000002H; (* Horizontal object \ Works automatically *)
- trofVERT = 00000004H; (* Vertical object / in groups *)
- trofRIGHTALIGN = 00000008H; (* Align object to the right border if *)
- (* available *)
-
- CONST (* Text flags *)
- trtxNOUNDERSCORE= 00000100H; (* Don't interpret underscores *)
- trtxHIGHLIGHT = 00000200H; (* Highlight text *)
- trtx3D = 00000400H; (* 3D design *)
- trtxBOLD = 00000800H; (* Softstyle 'bold' *)
- trtxTITLE = 00001000H; (* A title (e.g. of a group) *)
- trtxSELECTED = 00002000H; (* PRIVATE! *)
-
- (* ------------------------------------------------------------------------------ *)
- (* Menu entries *)
- (* ------------------------------------------------------------------------------ *)
-
- CONST trmnBARLABEL = -1; (* A barlabel instead of text *)
-
- (* ------------------------------------------------------------------------------ *)
- (* Tags for CreateApp() *)
- (* ------------------------------------------------------------------------------ *)
-
- CONST trcaName = ud.tagUser+1;
- trcaLongName = ud.tagUser+2;
- trcaInfo = ud.tagUser+3;
- trcaVersion = ud.tagUser+4;
- trcaRelease = ud.tagUser+5;
- trcaDate = ud.tagUser+6;
-
- (* ------------------------------------------------------------------------------ *)
- (* Tags for EasyRequest() *)
- (* ------------------------------------------------------------------------------ *)
-
- CONST trezReqPos = ud.tagUser+1;
- trezLockProject = ud.tagUser+2;
- trezReturn = ud.tagUser+3;
- trezTitle = ud.tagUser+4;
- trezActivate = ud.tagUser+5;
-
- (* ------------------------------------------------------------------------------ *)
- (* The Application Structure *)
- (* ------------------------------------------------------------------------------ *)
-
- TYPE TrApp = RECORD (* This structure is PRIVATE! *)
- memPool : S.ADDRESS; (* The memory pool *)
- bitMask : LONGCARD; (* Bits to Wait() for *)
- lastError : LONGCARD; (* trer code of last error *)
- name : StrPtr; (* Unique name *)
- longName : StrPtr; (* User-readable name *)
- info : StrPtr; (* Info string *)
- version : StrPtr; (* Version *)
- release : StrPtr; (* Release *)
- date : StrPtr; (* Compilation date *)
- appPort : ed.MsgPortPtr;(* Application message port *)
- idcmpPort : ed.MsgPortPtr;(* IDCMP message port *)
- prefs : S.ADDRESS; (* Pointer to Triton app prefs *)
- lastProject: TrProjectPtr; (* Used for menu item linking *)
- inputEvent : ie.InputEventPtr; (* For RAWKEY conversion *)
- END; (* TrApp *)
-
- (* ------------------------------------------------------------------------------ *)
- (* The Dimension Structure *)
- (* ------------------------------------------------------------------------------ *)
-
- TYPE TrDimensions = RECORD
- left : CARDINAL;
- top : CARDINAL;
- width : CARDINAL;
- height : CARDINAL;
- left2 : CARDINAL;
- top2 : CARDINAL;
- width2 : CARDINAL;
- height2 : CARDINAL;
- zoomed : BOOL;
- reserved : ARRAY [0..2] OF CARDINAL;
- END; (* TrDimensions *)
-
- (* ------------------------------------------------------------------------------ *)
- (* The Projects Structure *)
- (* ------------------------------------------------------------------------------ *)
-
- TYPE TrProject = RECORD (* This structure is PRIVATE! *)
- app : TrAppPtr; (* Our application *)
- screen : ind.ScreenPtr;(* Our screen, always valid *)
-
- lockedPubScreen:ind.ScreenPtr;(* Only valid if we're using*)
- (* a PubScreen *)
- screenTitle : StrPtr; (* The screen title *)
-
- window : ind.Window; (* The window *)
- id : LONGCARD; (* The window ID *)
- appWindow : wd.AppWindowPtr;(* AppWindow for icon *)
- (* dropping *)
-
- idcmpFlags : LONGCARD; (* The IDCMP flags *)
- flags : LONGCARD; (* Triton window flags *)
-
- newMenu : gtd.NewMenuPtr; (* The newmenu stucture *)
- (* built by Triton *)
- newMenuSize : LONGCARD; (* The number of menu *)
- (* items in the list *)
- menu : ind.MenuPtr; (* The menu structure *)
- nextSelect : LONGCARD; (* The next selected menu *)
- (* item *)
-
- visualInfo : S.ADDRESS; (* The VisualInfo of our *)
- (* window *)
- drawInfo : ind.DrawInfoPtr;(* DrawInfo of the screen *)
- userDimensions: TrDimensionsPtr;(* supplied dimensions *)
- dimensions : TrDimensionsPtr;(* Private dimensions *)
-
- windowStdHeight:LONGCARD; (* standard height of the window*)
- leftBorder : LONGCARD; (* left window border width *)
- rightBorder : LONGCARD; (* right window border width *)
- topBorder : LONGCARD; (* top window border height *)
- bottomBorder : LONGCARD; (* bottom window border height *)
- innerWidth : LONGCARD; (* inner width of the window *)
- innerHeight : LONGCARD; (* inner height of the window *)
- zipDimensions : ARRAY [0..3] OF INTEGER; (* The dimensions*)
- (* for the zipped window *)
- aspectFixing : CARDINAL; (*Pixel aspect correction factor*)
-
- objectList : ed.MinList; (* The list of display objects*)
- menuList : ed.MinList; (* The list of menus *)
- idList : ed.MinList; (* The ID linking list *)
- (* (menus & objects) *)
- memPool : S.ADDRESS; (* memory pool for the lists *)
- hasObjects : BOOL; (* Do we have display objects?*)
-
- propAttr : gd.TextAttrPtr; (* The proportional font *)
- (* attributes *)
- fixedWidthAttr: gd.TextAttrPtr; (* The fixed-width font *)
- (* attributes *)
- propFont : gd.TextFontPtr; (* The proportional font *)
- fixedWidthFont: gd.TextFontPtr; (* The fixed-width font *)
- openedPropFont: BOOL; (* Have we opened the *)
- openedFixedWidthFont: BOOL; (* fonts ? *)
- totalPropFontHeight : CARDINAL; (* Height of prop font *)
- (* incl. underscore *)
-
- backfillType : LONGCARD; (* The backfill type *)
- backfillHook : ud.HookPtr; (* The backfill hook *)
-
- gadToolsGadgetList: ind.GadgetPtr;(* List of GadTools *)
- (* gadgets *)
- prevGadget : ind.GadgetPtr; (* Previous gadget *)
- newGadget : gtd.NewGadgetPtr; (* GadTools NewGadget *)
-
- invisibleRequest: ind.RequesterPtr; (* The invisible *)
- (* blocking requester *)
- isUserLocked : BOOL; (* Project locked by the *)
- (* user? *)
-
- currentID : LONGCARD;(* currently keyboard-selected ID*)
- isCancelDown : BOOL; (* Cancellation key pressed? *)
- isShortcutDown: BOOL; (* Shortcut key pressed? *)
- underscore : CHAR; (* The underscore character *)
-
- escClose : BOOL; (* Close window on Esc ? *)
- delZip : BOOL; (* Zip window on Del ? *)
- pubScreenFallBack: BOOL; (* Fall back onto default public *)
- (* screen ? *)
- fontFallBack : BOOL; (* Fall back to topaz.8 ? *)
-
- oldWidth : CARDINAL;(* Old window width *)
- oldHeight : CARDINAL;(* Old window height *)
-
- END; (* TrProjects *)
-
- (* ------------------------------------------------------------------------------ *)
- (* Default classes, attributes and flags *)
- (* ------------------------------------------------------------------------------ *)
-
- CONST (* Classes *)
-
- trobButton = ud.tagUser+305; (* A BOOPSI button gadget *)
- trobCheckBox = ud.tagUser+303; (* A checkbox gadget *)
- trobCycle = ud.tagUser+310; (* A cycle gadget *)
- trobFrameBox = ud.tagUser+306; (* A framing box *)
- trobDropBox = ud.tagUser+312; (* An icon drop box *)
- trgrHoriz = ud.tagUser+201; (* Horizontal group,see below for types*)
- trgrVert = ud.tagUser+202; (* Vertical group, see below for types *)
- trgrEnd = ud.tagUser+203; (* End of a group *)
- trobLine = ud.tagUser+301; (* A simple line *)
- trobPalette = ud.tagUser+307; (* A palette gadget *)
- trobScroller = ud.tagUser+309; (* A scroller gadget *)
- trobSlider = ud.tagUser+308; (* A slider gadget *)
- trobSpace = ud.tagUser+901; (* The spaces class *)
- trobString = ud.tagUser+311; (* A string gadget *)
- trobText = ud.tagUser+304; (* A line of text *)
- trobListview = ud.tagUser+313; (* A listview gadget *)
- trobProgress = ud.tagUser+314; (* A progress indicator *)
- trobImage = ud.tagUser+315; (* An image *)
-
- CONST (* Button *)
- trbuRETURNOK = 00010000H; (* <Return> answers the button *)
- trbuESCOK = 00020000H; (* <Esc> answers the button *)
- trbuSHIFTED = 00040000H; (* Shifted shortcut only *)
- trbuUNSHIFTED = 00080000H; (* Unshifted shortcut only *)
- trbuYRESIZE = 00100000H; (* Button resizeable in Y direction *)
- trbtTEXT = 0; (* Text button *)
- trbtGETFILE = 1; (* GetFile button *)
- trbtGETDRAWER = 2; (* GetDrawer button *)
- trbtGETENTRY = 3; (* GetEntry button *)
-
- CONST (* Group *)
- trgrPROPSHARE = 00000000H; (* Default: Divide objects proportionally *)
- trgrEQUALSHARE = 00000001H; (* Divide objects equally *)
- trgrPROPSPACES = 00000002H; (* Divide spaces proportionally *)
- trgrARRAY = 00000004H; (* Top-level array group *)
-
- trgrALIGN = 00000008H; (* Align resizeable objects in secondary *)
- (* dimension *)
- trgrCENTER = 00000010H; (* Center unresizeable objects in *)
- (* secondary dimension *)
-
- trgrFIXHORIZ = 00000020H; (* Don't allow horizontal resizing *)
- trgrFIXVERT = 00000040H; (* Don't allow vertical resizing *)
- trgrINDEP = 00000080H; (* Group is independant of surrounding *)
- (* array *)
-
- CONST (* Framebox *)
- trfbGROUPING = 00000001H; (* A grouping box *)
- trfbFRAMING = 00000002H; (* A framing box *)
- trfbTEXT = 00000004H; (* A text container *)
-
- CONST (* Scroller *)
- trscTotal = ud.tagUser+1504;
- trscVisible = ud.tagUser+1505;
-
- CONST (* Slider *)
- trslMin = ud.tagUser+1502;
- trslMax = ud.tagUser+1503;
-
- CONST (* Space *)
- trstNONE = 1; (* No space *)
- trstSMALL = 2; (* Small space *)
- trstNORMAL = 3; (* Normal space (default) *)
- trstBIG = 4; (* Big space *)
-
- CONST (* Listview *)
- trlvTop = ud.tagUser+1506;
- trlvREADONLY = 00010000H; (* A read-only list *)
- trlvSELECT = 00020000H; (* You may select an entry *)
- trlvSHOWSELECTED = 00040000H; (* Selected entry will be shown *)
- trlvNOCURSORKEYS = 00080000H; (* Don't use arrow keys *)
- trlvNONUMPADKEYS = 00100000H; (* Don't use numeric keypad keys *)
- trlvFWFONT = 00200000H; (* Use the fixed-width font *)
- trlvNOGAP = 00400000H; (* Don't leave a gap below the list *)
-
- CONST (* Image *)
- trimBOOPSI = 00010000H; (* Use a BOOPSI IClass image *)
-
- CONST (* Cycle *)
- trcyMX = 00010000H; (* Unfold the cycle gadget to a MX gadget *)
- trcyRIGHTLABELS = 00020000H; (* Put labels to the right of a MX gadget *)
-
- END TritonD.def
-